library(knitr)
library(rgl)
library(R.matlab)
## R.matlab v3.6.2 (2018-09-26) successfully loaded. See ?R.matlab for help.
## 
## Attaching package: 'R.matlab'
## The following objects are masked from 'package:base':
## 
##     getOption, isOpen
knit_hooks$set(webgl = hook_webgl)
source("pgh.R")
source("principal_curve_KDE.R")

original data

volume <- readMat('sample.mat')$vol
label  <- readMat('true_label.mat')$md
label[label!=0] = 1

data <- which(label!=0, arr.ind = TRUE)

principal curve projection

kernel_sigma <- 1.5
pc_projection <- principal_curve_KDE(data, data, kernel_sigma,1)
plot3d(data,col=rgb(0,0,1,0.2))

You must enable Javascript to view this page properly.

plot3d(pc_projection,col=rgb(0,0,1,0.2))

You must enable Javascript to view this page properly.